<?php
// +----------------------------------------------------------------------
// | KITEGO-Admin「开箱即用」「人人全栈」
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2024 https://www.kitego.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed KITEGO并不是自由软件，未经许可不能去掉KITEGO相关版权
// +----------------------------------------------------------------------
// | Author: KITEGO Team <bd@kitego.cn>
// +----------------------------------------------------------------------

namespace kitego\enums\order;

final class OrderDeleteStatusEnum
{
    private function __construct() {} // 防止实例化

    // 常量定义各个状态值
    const NORMAL = 0;
    const USER_DELETED = 1;
    const ADMIN_DELETED = 2;
    const SYSTEM_DELETED = 3;

    /**
     * 获取所有状态的键值对
     */
    public static function getAllStatuses()
    {
        return [
            self::NORMAL => '正常',
            self::USER_DELETED => '用户删除', // 用户删除（已完成/已取消订单，回收站保留30天）
            self::ADMIN_DELETED => '管理员删除', // 管理员删除（违规订单/法律要求，需审计日志）
            self::SYSTEM_DELETED => '系统删除' // 系统自动删除（超时未支付/历史数据清理）
        ];
    }

    /**
     * 根据状态值获取对应的状态名称
     */
    public static function getStatusName($status)
    {
        $statuses = self::getAllStatuses();
        return $statuses[$status] ?? null;
    }

    /**
     * 验证状态值是否有效
     */
    public static function isValid($status)
    {
        return isset(self::getAllStatuses()[$status]);
    }
}
